#!/system/bin/sh

# 定义依赖脚本路径（根据实际存放位置调整）
DATA_LOADER="./load_ad_data.sh"       # 数据加载工具
FILE_UTILS="./file_utils.sh"          # 文件操作工具（含create_with_cleanup）
INSTALL_CHECKER="./install_check.sh"  # 安装检查工具（含check_is_onekey_install等）

# 导入依赖脚本
import_deps() {
    deps=("$DATA_LOADER" "$FILE_UTILS" "$INSTALL_CHECKER")
    for dep in "${deps[@]}"; do
        if [ ! -f "$dep" ]; then
            echo "错误：依赖脚本 $dep 不存在，无法继续"
            exit 1
        fi
        # 导入脚本（使用.命令确保变量/函数在当前环境生效）
        . "$dep" || {
            echo "错误：导入 $dep 失败"
            exit 1
        }
    done
    echo "所有依赖脚本导入成功"
}


# 主逻辑（去掉一键安装检查，仅判断是否安装）
main() {
    import_deps

    # 加载应用数据
    load_ad_data || {
        echo "主流程终止：数据加载失败"
        exit 1
    }

    # 遍历所有应用
    ma_total=$(echo "$APPS" | wc -w)
    echo -e "\n开始处理所有应用（共 $ma_total 个）..."
    ma_index=0
    ma_current_pkg=""

    for ma_current_pkg in $APPS; do
        ma_index=$((ma_index + 1))
        echo -e "\n=== 处理第 $ma_index/$ma_total 个应用：$ma_current_pkg ==="

        # 仅检查应用是否安装（去掉一键安装判断）
        if ! check_package_installed "$ma_current_pkg"; then
            echo "跳过：应用 $ma_current_pkg 未安装"
            continue
        fi
        echo "应用 $ma_current_pkg 已安装，开始处理广告文件夹..."

        # 获取广告文件夹列表并处理
        ma_folders=$(get_ad_folders "$ma_current_pkg")
        if [ -z "$ma_folders" ]; then
            echo "警告：应用 $ma_current_pkg 无广告文件夹配置，跳过"
            continue
        fi

        # 逐个处理文件夹
        echo "处理广告文件夹（共 $(echo "$ma_folders" | wc -l) 个）："
        echo "$ma_folders" | while read -r ma_folder; do
            if [ -z "$ma_folder" ]; then
                continue
            fi
            echo -e "\n--- 处理文件夹：$ma_folder ---"
            create_with_cleanup "$ma_folder"
            if [ $? -eq 0 ]; then
                echo "文件夹 $ma_folder 处理成功"
            else
                echo "文件夹 $ma_folder 处理失败"
            fi
        done
    done

    echo -e "\n所有应用处理完毕"
}


# 启动主逻辑
main
